home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1993 November / JCSM Shareware Collection - 1993-11.iso / cl720 / sst115j.lzh / WDEMO.C < prev    next >
C/C++ Source or Header  |  1992-08-01  |  6KB  |  237 lines

  1. /* ------------------------------------------------------------------------ */
  2. /*                                 wdemo.c                                  */
  3. /* ------------------------------------------------------------------------ */
  4.  
  5. #include <dos.h>
  6. #include <stdio.h>
  7. #include <string.h>
  8. #include <mem.h>
  9. #include <stdlib.h>
  10. #include <conio.h>
  11.  
  12. #include "sstvid.h"
  13. #include "sstkey.h"
  14. #include "sstwin.h"
  15.  
  16. void WinTitlesColours  (void);
  17. void WinPromote        (void);
  18. void WinFast           (void);
  19. void WinMove           (void);
  20.  
  21.  
  22. /* ------------------------------------------------------------------------ */
  23. /*                           demo on windows                                */
  24. /* ------------------------------------------------------------------------ */
  25. void WinTitlesColours(void)
  26. {
  27.     WINDOW *wndA, *wndB, *wndC;
  28.     int c;
  29.  
  30.     wndA = Westablish(1, 1, 4, 40);
  31.     wndB = Westablish(4, 10, 4, 40);
  32.     wndC = Westablish(8, 20, 4, 40);
  33.     Wsetcolour(wndA, WIN_ALL, GREEN, BLACK, DIM);
  34.     Wsetcolour(wndB, WIN_ALL, LIGHTGRAY, BLUE, DIM);
  35.     Wsetcolour(wndC, WIN_ALL, CYAN, BLUE, DIM);
  36.     Wsettitle(wndA,"Left",JUST_L);
  37.     Wsettitle(wndB,"Right",JUST_R);
  38.     Wsettitle(wndC,"Centre",JUST_C);
  39.     Wshow(wndA);
  40.     Wshow(wndB);
  41.     Wshow(wndC);
  42.     Wprintf(wndA,"Press R G B 1 2 3 keys");
  43.     do    {
  44.         c = kgetch();
  45.         switch (c)    {
  46.             case 'r':
  47.                 Wsettitle(wndB, " RED ",JUST_C);
  48.                 Wsetcolour(wndB, WIN_ALL, RED, WHITE, BRIGHT);
  49.                 break;
  50.             case 'b':
  51.                 Wsettitle(wndB, " BLUE ",JUST_C);
  52.                 Wsetcolour(wndB, WIN_ALL, BLUE, WHITE, BRIGHT);
  53.                 break;
  54.             case 'g':
  55.                 Wsettitle(wndB, " GREEN ",JUST_C);
  56.                 Wsetcolour(wndB, WIN_ALL, GREEN, WHITE, BRIGHT);
  57.                 break;
  58.             case '1': {
  59.                 Wsettitle(wndA, "Centre",JUST_C);
  60.                 Wsettitle(wndB, "Leff",JUST_L);
  61.                 Wsettitle(wndC, "Right",JUST_R);
  62.                 }
  63.                 break;
  64.             case '2': {
  65.                 Wsettitle(wndA,"Right",JUST_R);
  66.                 Wsettitle(wndB,"Centre",JUST_C);
  67.                 Wsettitle(wndC,"Left",JUST_L);
  68.                 }
  69.                 break;
  70.             case '3': {
  71.                 Wsettitle(wndA,"Left",JUST_L);
  72.                 Wsettitle(wndB,"Right",JUST_R);
  73.                 Wsettitle(wndC,"Centre",JUST_C);
  74.                 }
  75.                 break;
  76.             default:
  77.                 break;
  78.         }
  79.     } while (c != ESC);
  80.     Wdelete(wndA);
  81.     kgetch();
  82.     Wdelete(wndC);
  83.     kgetch();
  84.     Wdelete(wndB);
  85. }
  86.  
  87. /* ------------------------------------------------------------------------ */
  88. void WinPromote(void)
  89. {
  90.     WINDOW *wndA, *wndB, *wndC;
  91.     int c;
  92.  
  93.     wndA = Westablish(5, 5, 9, 28);
  94.     wndB = Westablish(10, 3, 9, 24);
  95.     wndC = Westablish(13, 8, 9, 31);
  96.     Wsetcolour(wndA, WIN_ALL, RED, YELLOW, DIM);
  97.     Wsetcolour(wndB, WIN_ALL, CYAN, YELLOW, DIM);
  98.     Wsetcolour(wndC, WIN_ALL, LIGHTGRAY, YELLOW, DIM);
  99.     Wshow(wndA);
  100.     Wshow(wndB);
  101.     Wshow(wndC);
  102.     Wprintf(wndA, "\n\n Press A to promote me");
  103.     Wprintf(wndB, "\n\n Press B to promote me");
  104.     Wprintf(wndC, "\n\n Press C to promote me");
  105.     do    {
  106.         c = kgetch();
  107.         switch (c)    {
  108.             case 'a':    Wforefront(wndA);
  109.                         break;
  110.             case 'b':    Wforefront(wndB);
  111.                         break;
  112.             case 'c':    Wforefront(wndC);
  113.                         break;
  114.             case 'A':    Wrear(wndA);
  115.                         break;
  116.             case 'B':    Wrear(wndB);
  117.                         break;
  118.             case 'C':    Wrear(wndC);
  119.                         break;
  120.             default:    break;
  121.         }
  122.     } while (c != ESC);
  123.     Wdelete(wndA);
  124.     kgetch();
  125.     Wdelete(wndC);
  126.     kgetch();
  127.     Wdelete(wndB);
  128. }
  129. /* ------------------------------------------------------------------------ */
  130. void WinFast(void)
  131. {
  132.     int l = 0,x,y;
  133.  
  134.     for (x = 0, y = 0; y < 16; x += 3, y++, l++)    {
  135.         Westablish(x, y, 8,32);
  136.         Wsetcolour(NULL, WIN_ALL, y, YELLOW, BRIGHT);
  137.         Wshow(NULL);
  138.         Wprintf(NULL," Fast win %d", l);
  139.     }
  140.     kgetch();
  141.     while (y--)
  142.         Wdelete(NULL);
  143. }
  144.  
  145. /* ------------------------------------------------------------------------ */
  146. void WinFast1(void)
  147. {
  148.     int l=0,x,y;
  149.  
  150.     for (x = 0, y = 0; y < 22; x += 3, y++, l++)    {
  151.         Westablish(x, y, 3,14);
  152.         Wsetcolour(NULL, WIN_ALL, y, YELLOW, BRIGHT);
  153.         Wshow(NULL);
  154.         Wprintf(NULL," Fast win %d", l);
  155.     }
  156.     kgetch();
  157.     while (y--)
  158.         Wdelete(NULL);
  159. }
  160.  
  161.  
  162. /* ------------------------------------------------------------------------ */
  163. void WinFast2(void)
  164. {
  165.     int r, c, a;
  166.  
  167.     vblinkbit(0);
  168.     for (r = 0, c = 0 , a = 7; a < 15; r += 9, c+=3, a++)    {
  169.         Westablish(r, c, 4, 20);
  170.         Wsetcolour(NULL, WIN_ALL, a, BLACK, BRIGHT);
  171.         Wshow(NULL);
  172.         Wprintf(NULL,"Fast window no  %d", a-6);
  173.         Wprintf(NULL,"\nIntensity Enabled");
  174.     }
  175.     kgetch();
  176.     while (c--)
  177.         Wdelete(NULL);
  178.     vblinkbit(1);
  179. }
  180.  
  181.  
  182. /* ------------------------------------------------------------------------ */
  183. void WinMove(void)
  184. {
  185.     WINDOW *wndA, *wndB, *wndC;
  186.     int c;
  187.  
  188.     wndA = Westablish(5, 5, 9, 19);
  189.     wndB = Westablish(10, 3, 9, 23);
  190.     wndC = Westablish(13, 8, 9, 12);
  191.     Wsetcolour(wndA, WIN_ALL, RED, YELLOW, BRIGHT);
  192.     Wsetcolour(wndB, WIN_ALL, CYAN, YELLOW, BRIGHT);
  193.     Wsetcolour(wndC, WIN_ALL, LIGHTGRAY, YELLOW, BRIGHT);
  194.     Wshow(wndA);
  195.     Wshow(wndB);
  196.     Wshow(wndC);
  197.     Wprintf(wndB, "\n I wouldn't care who");
  198.     Wprintf(wndB, "\n wrote the laws if I");
  199.     Wprintf(wndB, "\n could write the");
  200.     Wprintf(wndB, "\n ballads.");
  201.     Wprintf(wndB, "\n\n    Thomas Jefferson");
  202.     do    {
  203.         int x = 0, y = 0;
  204.         c = kgetch();
  205.         switch (c)    {
  206.             case RIGHT:    x++;
  207.                         break;
  208.             case LEFT:    --x;
  209.                         break;
  210.             case UP:    --y;
  211.                         break;
  212.             case DOWN:    y++;
  213.             default:    break;
  214.         }
  215.         if (x || y)
  216.             Wrmove(wndB, x, y);
  217.     } while (c != ESC);
  218.     Wdelete(wndA);
  219.     kgetch();
  220.     Wdelete(wndC);
  221.     kgetch();
  222.     Wdelete(wndB);
  223. }
  224.  
  225. /* ------------------------------------------------------------------------ */
  226. void main(void)
  227.  
  228. {
  229.   WinTitlesColours();
  230.   WinPromote();
  231.   WinFast();
  232.   WinFast1();
  233.   WinFast2();
  234.   WinMove();
  235. }
  236.  
  237.